import baseConfig from "./config.js"; // 本地配置数据

// 此vm参数为页面的实例，可以通过它引用vuex中的变量
module.exports = (vm) => {
    // 初始化请求配置
	uni.$u.http.setConfig((config) => {
		config.baseURL = (baseConfig.httpsSwitch ? 'https://' : 'http://') + baseConfig.baseUrl; /* 根域名 */
		return config
	})
	
	// 请求拦截
	uni.$u.http.interceptors.request.use((config) => { 
		// const userinfo = uni.getStorageSync('userinfo');
		const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmdfaWQxIjo4MSwib3JnX2lkMiI6MCwib3JnX2lkMyI6MCwib3JnX25hbWUxIjoi5rmW5Y2X5Y2O6L6w5pm66YCa56eR5oqA5pyJ6ZmQ5YWs5Y-4Iiwib3JnX25hbWUyIjoiIiwib3JnX25hbWUzIjoiIiwidXNlcl9pZCI6MSwidXNlcl9uYW1lIjoi6Ii45bCP55m9IiwiYWNjb3VudCI6ImFkbWluIiwibW9iaWxlIjoiMTU1NzU4MjU0OTkiLCJyb2xlX2lkIjo2NiwiZGF0YV9yYW5nZSI6NCwiY3VzdG9tZXJfaWQiOjEsImN1c3RvbWVyX25hbWUiOiLmuZbljZfljY7ovrDmmbrpgJrnp5HmioDmnInpmZDlhazlj7giLCJjdXN0b21lcl90eXBlIjoxLCJleHAiOjE2ODkwNjMzMDgsImlzcyI6IkJHWV9BUFAiLCJuYmYiOjE2ODg0NTg1MDh9.UZBIp45XPsTk7YNQ5Mtq9r8P07y-pFcFvg5ODw7bTDQ'
		if (!baseConfig.noNeedLogin.includes(config.url)) {
			if (token) {
				config.header.token = token;
			} else {
				return false;// 不再请求，app.vue内有延时的登录跳转
			}
		}
		return config;
	}, config => { 
		// 可使用async await 做异步操作
		return Promise.reject(config)
	})
	
	// 响应拦截
	uni.$u.http.interceptors.response.use((res) => {
		let { statusCode } = res
		if(statusCode == 200) {
			return res.data;
		}else{
			if(statusCode == 401) {
				vm.$u.toast('登录过期，请重新登录');
				setTimeout(() => {
					vm.$u.route('/pages/login/index')
				}, 1800)
			}else{
				vm.$u.toast(res.data.msg);
				return false
			}
		}
	}, (res) => {
		/*  对响应错误做点什么 （statusCode !== 200）*/
		console.log('响应拦截错误---', res)
		return Promise.reject(res)
	})
}